home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 18 / AMIGAplus Sonderheft 18 (1999)(ICP)(DE)[!].iso / Forum / MichaelRoth / 3-3-99 / subs / swapzeile.asm < prev    next >
Assembly Source File  |  1998-08-15  |  1KB  |  31 lines

  1. ; A0 -> Buffer
  2. ; D0 -> Länge des buffers
  3.  
  4.  
  5. ; Sub Register
  6. ; A5 Endadresse
  7. ; A2 Hilfsregister
  8. ; A1 Hilfsregister
  9.          move.l    a0,a1
  10.          lea       (a0,d0),a5
  11.          moveq     #-1,d0
  12. .loop
  13.          cmp.b     #10,(a1)+                     ; Auf CR prüfen
  14.          dbeq      d0,.loop                      ;
  15.          neg       d0                            ; Wert negieren um echten Wert zu erhalten
  16.          sub.w     #1,d0                         ; wegen dem CR 1 abziehem
  17.          lsr.w     #1,d0                         ; durch 2 Teilen
  18.          sub.w     #1,d0                         ; DBcc schleife Initialisieren
  19.          lea       -1(a1),a2                     ; CR ausblenden
  20. .loop2
  21.          move.b    -(a2),d1                      ; Zeichen am ende auslesen
  22.          move.b    (a0),(a2)                     ; Zeichen austauschen
  23.          move.b    d1,(a0)+                      ; und leztes Zeichen an Anfang stellen
  24.          dbra      d0,.loop2                     ; Kopieren
  25.          move.l    a1,a0                         ;
  26.          btst      #1,$bfe001
  27.          beq       .exit
  28.          cmp.l     a1,a5                        ;
  29.          bhi.s     .loop                         ;
  30. .exit
  31.